/*********************************
*-- 33 KDH Knieja ---------------*
*-- im. Harcerzy Września 1939 --*
*-- autor: Marcin Rzepisko ------*
*-- data: 2013-11-10 ------------*
**********************************/

package net.kdh.knieja.model.wspolne.wyjatki;

import java.sql.Timestamp;
import net.kdh.knieja.model.wspolne.DataCzas;


/**
 *
 * @author rz.marcin@gmail.com
 */
public class Wyjatek extends Exception {
    String zrodlo;
    
    Timestamp dateTime;
    String nazwaMetody;
    String nazwaKlasy;
    
    public Wyjatek() {
    }

    public Wyjatek(String zrodlo) {
        this.zrodlo = zrodlo;
    }
    
    public Wyjatek(String zrodlo, Throwable wyjatek) {
        setZrodlo(zrodlo);
        super.addSuppressed(wyjatek);
    }


    public final String getZrodlo() {
        return zrodlo;
    }

    public final void setZrodlo(String zrodlo) {
        this.zrodlo = zrodlo;
    }

    public final Timestamp getDateTime() {
        return dateTime;
    }

    public final void setDateTime(Timestamp dateTime) {
        this.dateTime = dateTime;
    }

    public final String getNazwaMetody() {
        return nazwaMetody;
    }

    public final void setNazwaMetody(String nazwaMetody) {
        this.nazwaMetody = nazwaMetody;
    }

    public final String getNazwaKlasy() {
        return nazwaKlasy;
    }

    public final void setNazwaKlasy(String nazwaKlasy) {
        this.nazwaKlasy = nazwaKlasy;
    }

    private String getCzasWystapienia() {
        return dateTime == null ? DataCzas.biezacaDataCzas().toString() : dateTime.toString();
    }
    @Override
    public String toString() {
        String s = "\n{0}: Zgłoszony został wyjątek: {1}\n"
                + "\tKlasa: {2}\n"
                + "\tMetoda: {3}";
        return String.format(s, getCzasWystapienia(), zrodlo, nazwaKlasy, nazwaMetody);
    }
}
